;................................................................ ; ; Set slot 3 text I/O: ;................................................................ ; Save entry I/O configuration: Set_S3 START PHA ;reserve space for results PHA PHA _GetInputDevice PullLong IO_Data ;save input slot or vector PullWord IO_Data+4 ;save input device code PHA ;reserve space for results PHA _GetInGlobals PullWord IO_Data+6 ;save input OR mask PullWord IO_Data+8 ;save input AND mask PHA ;reserve space for results PHA PHA _GetOutputDevice PullLong IO_Data+10 ;save output slot/vector PullWord IO_Data+14 ;save output device code PHA ;reserve space for results PHA _GetOutGlobals PullWord IO_Data+16 ;save output OR mask PullWord IO_Data+18 ;save output AND mask ; Set slot 3 text I/O (negative ASCII): PushWord #0 ;BASIC device type PushLong #3 ;Input from slot 3 _SetInputDevice ;no result PushWord #0 ;BASIC device type PushLong #3 ;Output to slot 3 _SetOutputDevice ;no result PushWord #$FF ;AND mask (no change) PushWord #$80 ;OR mask (set high bit) _SetInGlobals ;no result PushWord #$FF ;AND mask (no change) PushWord #$80 ;OR mask (set high bit) _SetOutGlobals ;no result PushWord #0 ;input device _InitTextDev PushWord #1 ;output device _InitTextDev RTL ;................................................................ ; ; Restore entry I/O configuration: ;................................................................ Restore_IO ENTRY PushWord IO_Data+18 ;output AND mask PushWord IO_Data+16 ;output OR mask _SetOutGlobals PushWord IO_Data+14 ;output device code PushLong IO_Data+10 ;output slot/vector _SetOutputDevice PushWord IO_Data+8 ;input AND mask PushWord IO_Data+6 ;input OR mask _SetInGlobals PushWord IO_Data+4 ;input device code PushLong IO_Data ;input slot/vector _SetInputDevice PushWord #0 ;input device _InitTextDev PushWord #1 ;output device _InitTextDev RTL IO_Data DS 20 ;I/O configuration storage END